/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cliente.banco;

import estruturas.Pessoa;
import extras.tela_erro;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
import principal.banco.bd;

/**
 *
 * @author Diego
 */
public class bd_pessoas
{

    public static Pessoa buscaCPF(String cpf)
    {
        ResultSet t = null;
        try
        {
            PreparedStatement p = bd.getConnection().prepareStatement("SELECT * FROM pessoas WHERE cpf = ? ");

            p.setString(1, cpf);

            t = p.executeQuery();

            t.next();
            //System.out.println(t.getInt(t.findColumn("kuser")));
            if (t.getInt(1) == 0)
            {
                tela_erro tela = new tela_erro("Os dados de usuário e senha digitados não foram encontradas. Redigite os dados.");
            } else
            {
                Pessoa pessoaA = new Pessoa();
                pessoaA.setKpessoa(t.getInt("kpessoa"));
                pessoaA.setNumero(t.getInt("numero"));
                pessoaA.setKcidade(t.getInt("kcidade"));
                pessoaA.setNome(t.getString("nome"));
                pessoaA.setCpf(t.getString("cpf"));
                pessoaA.setRg(t.getString("rg"));
                pessoaA.setRua(t.getString("rua"));
                pessoaA.setComplemento(t.getString("complemento"));
                pessoaA.setTelefone(t.getString("telefone"));
                pessoaA.setDdd(t.getString("ddd"));
                pessoaA.setDdd_cel(t.getString("ddd_cel"));
                pessoaA.setCelular(t.getString("celular"));
                pessoaA.setCep(t.getString("cep"));


            }
        } catch (SQLException ex)
        {
            tela_erro tela_erro = new tela_erro(ex.getMessage());
        }

        return null;
    }

    public static boolean cadastraPessoa(Pessoa p) throws SQLException
    {
        String sql = "INSERT INTO pessoa(nome,"
                + "cpf,rg,kcidade,rua,numero,complemento,"
                + "cep,telefone,ddd,ddd_cel,celular) "
                + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?) ";

        PreparedStatement ps = bd.getConnection().prepareStatement(sql);
        ps.setString(1, p.getNome());
        ps.setString(2, p.getCpf());
        ps.setString(3, p.getRg());
        ps.setInt(4, p.getKcidade());
        ps.setString(5, p.getRua());
        ps.setInt(6, p.getNumero());
        ps.setString(7, p.getComplemento());
        ps.setString(8, p.getCEP());
        ps.setString(9, p.getTelefone());
        ps.setString(10, p.getDdd());
        ps.setString(11, p.getDdd_cel());
        ps.setString(12, p.getCelular());
        ps.execute();
        //bd.query(sql);

//        try
//        {
//            bd.query(sql);
//
//        } catch (SQLException ex)
//        {
//            tela_erro tela_erro = new tela_erro("Erro ao cadastrar pessoa!\n" + ex + "\n" + sql);
//            return false;
//        }
        return true;
    }

    public static LinkedList<Pessoa> buscaPessoas(String nome, String CPF) throws SQLException
    {
        ResultSet t = null;
        LinkedList<Pessoa> lista = new LinkedList<>();
//        try
//        {
        PreparedStatement ps = bd.getConnection().prepareStatement("SELECT kpessoa,cpf,nome,concat(ddd,telefone) as telefone "
                + "FROM pessoa WHERE nome like ? or cpf like ? ");
        ps.setString(1, "%" + nome + "%");
        ps.setString(2, "%" + CPF + "%");
        t = ps.executeQuery();

        while (t.next())
        {
            Pessoa p = new Pessoa();
            p.setKpessoa(t.getInt("kpessoa"));
            p.setCpf(t.getString("cpf"));
            p.setNome(t.getString("nome"));
            p.setTelefone(t.getString("telefone"));
            lista.add(p);
        }

//        } catch (SQLException ex)
//        {
//            tela_erro tela_erro = new tela_erro(ex.getMessage());
//        }

        return lista;
    }
}
